1. Field of the Invention
This invention related to memory systems for a computer. More specifically, the invention relates to arranging a plurality of disk drives in an array and causing the array to have flexibility in configuration. Among the aspects of the array that are flexible are logical configuration of the disk drives, level of redundancy available, and allocation of spare disk drives.
2. Summary of the Prior Art
The disk drive is a well known memory storage device. There are basically two types of disk drives. One uses a magnetic medium, the other uses an optical disk. To increase memory performance, attempts have been made to increase transfer rates and storage density of disk drives. Unfortunately, the advances of physics have not kept pace with the speed requirements of computer systems. With this limitation, attempts have been made to produce large memory units with parallel channels and low access times, but with resultant reliability problems due to increased component count.
One embodiment has been the creation of disk drive arrays. A disk drive array has been built by Micropolis of Chatsworth, CA. In this array, the host computer sees the disk drive array as one large memory unit. Performance is increased, however, because smaller diameter disk drives can be used with redundant techniques to increase transfer rates and reliability. The disk drive array is also advantageous because it allows a high bandwidth of data to be written to memory. That is, multiple disk drives permits multiple paths to memory, therefore, a larger volume of data can be transferred to or from the disk drive array than from a single drive.
This rigid configuration has also been disclosed in concept by the University of California, at Berkeley. The University's Computer Science department has put forth an article discussing the use of disk drive arrays. The article gave the taxonomy of five different organizations of disk arrays, beginning with mirrored disks and progressing through a variety of alternatives with differing performance and reliability.
The first level of organization involves the use of mirror disks, a traditional approach for improving the reliability of disk drives. This is an expensive option since every write to a data disk is also a write to a check disk. Tandem Corporation which has used mirrored disks, doubles the number of controllers so that reads can occur in parallel.
The second level of organization posited by the prior art article involves the use of Hamming code. This level attempts to reduce the number of check disks. Since some accesses are to groups of disks, the second level does bit-interleaving of the data across the disks of a group and then adds enough check disks to detect and correct a single error. A single parity disk can detect a single error, but to correct an error enough check disks are needed to identify the disk with the error. For a group size of 10 data disks four check disk are needed, and for 25 data disks, five check disks are needed.
Furthermore, in level three, a conceptual discussion of a single check disk per group is presented. Through either special signals provided in the disk interface or the extra checking information at the end of a sector to detect and correct errors, many disk controllers can tell if a disk has failed. According to the prior art, the information on the failed disk is reconstructed by calculation the parity of the remaining good disks and then comparing, bit-by-bit, to the parity calculated for the original full group. When these two parities agree, the failed bit is a 0, otherwise it is a 1.
In the fourth level, independent reads and writes across different disks are contemplated. The advantages of spreading a transfer across all disks within the group is that large or grouped transfer time is reduced because transfer bandwidth of the entire array can be exploited. The following disadvantages also result. Reading/writing to a disk in a group requires reading/writing to all the disks in a group. Also, if the disks are not synchronized, average rotational delays are not observed Level four achieves parallelism for reads, but writes are still limited to one per groups since every write to a group must read and write the check disk.
Level five, on the other hand, discusses distributing the data and check information per sector across all the disks--including the check disks. Level five espouses the idea of having multiple individual writes per group. Accordingly, this arrangement would have the small-read-modify-writes which perform close to the speed per disk of level one while keeping the large transfer performance per disk and high useful capacity percentage of levels three and four. Thus, level five offers advantages in performance and reliability over a single large disk drive.
These levels of the prior art are fundamental, yet conceptual, principles underlying the use of disk arrays. Five separate, rigid configurations of a disk drive array are discussed and the advantages and disadvantages of each are presented. The embodiments of Tandem and Micropolis have also been set forth. These embodiments are similarly rigid and narrow in scope. Each embodiment emphasizes one characteristic that may be advantageous to a particular user. The shortcoming with these devices and concepts is that they are not flexible in meeting the needs of varied customers, or a single customer with varied needs.
Different customers have different needs depending on the type and amount of data they are storing. Also, the same customer can have varied data storage needs. The prior art, unfortunately, suggests only individual performance and/or reliability schemes. It does not present providing a customer with flexibility in deciding how large of a bandwidth, how high a transaction rate, or how much redundancy, etc., they may have made available to them, to match their needs. Given the cost of developing a disk drive array, its inability to provide flexibility to a customer makes its design for one application an almost prohibitively expensive risk.